home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oh!X 2001 Spring
/
Oh!X 2001 Spring Special CD-ROM (Japan).7z
/
Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin
/
JAVA
/
jshooting2
/
jshooting.java
< prev
next >
Wrap
Text File
|
2000-08-18
|
2KB
|
114 lines
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class jshooting extends Applet implements KeyListener, Runnable {
static final int WIDTH = 240, HEIGHT = 320; // 背景サイズ
SpriteControl sc; // スプライトコントロール
MediaTracker mt;
boolean up=false, down=false, left=false, right=false;
int mx=(WIDTH-32)/2, my=(HEIGHT-32)/2;
Thread thread=null;
public void init(){
sc = new SpriteControl( 1, 1, WIDTH, HEIGHT, this );
mt = new MediaTracker( this );
Image image = getImage( getDocumentBase(), "img/back.gif" ); // 背景
mt.addImage( image, 0 );
sc.SetBGImage( image );
image = getImage( getDocumentBase(), "img/myship.gif" ); // 自機
mt.addImage( image, 0 );
sc.Define( 0, image );
sc.Set( 0, 0 );
sc.Move( 0, mx, my );
sc.Show();
addKeyListener( this );
}
public void update( Graphics g ){
paint( g );
}
public void paint( Graphics g ){
if( mt.checkID( 0 ) ){
sc.Display( g, this );
} else {
g.drawString( "Loading...", 0, 12 );
}
}
public void keyPressed( KeyEvent e ){
switch( e.getKeyCode() ){
case KeyEvent.VK_UP:
up = true;
break;
case KeyEvent.VK_DOWN:
down = true;
break;
case KeyEvent.VK_LEFT:
left = true;
break;
case KeyEvent.VK_RIGHT:
right = true;
break;
}
}
public void keyReleased( KeyEvent e ){
switch( e.getKeyCode() ){
case KeyEvent.VK_UP:
up = false;
break;
case KeyEvent.VK_DOWN:
down = false;
break;
case KeyEvent.VK_LEFT:
left = false;
break;
case KeyEvent.VK_RIGHT:
right = false;
break;
}
}
public void keyTyped( KeyEvent e ){
}
public void start(){
if( thread==null ){
thread = new Thread( this );
thread.start();
}
}
public void stop(){
if( thread!=null ){
thread = null;
}
}
public void run(){
try {
mt.waitForID( 0 );
} catch( InterruptedException e ){
return;
}
while( thread!=null ){
try {
Thread.sleep( 50 );
} catch( InterruptedException e ){
break;
}
if( up ){
my -= 4;
if( my<0 ) my = 0;
}
if( down ){
my += 4;
if( my>HEIGHT-32 ) my = HEIGHT-32;
}
if( left ){
mx -= 4;
if( mx<0 ) mx = 0;
}
if( right ){
mx += 4;
if( mx>WIDTH-32 ) mx = WIDTH-32;
}
sc.Move( 0, mx, my );
repaint();
}
}
}